package com.hotel.mvc.controller;


import hbm.Cliente;
import hbm.ClienteDAO;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hibernate.Session;
import org.hibernate.Transaction;

public class ClienteController extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@SuppressWarnings("unchecked")
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		String opcion = request.getParameter("opcion");

		if(opcion!=null && opcion.equals("mantenimiento")){
			response.sendRedirect("./jsp/mantenimientoCliente.jsp");
		}
		
		if(opcion!=null && opcion.equals("ingresar")){
			response.sendRedirect("./jsp/ingresoCliente.jsp");
		}
		
		if(opcion!= null && opcion.equals("elimina")){
			String boton = request.getParameter("boton");
			if(boton==null){
			List<Cliente> listaClientes = (ArrayList<Cliente>) new ClienteDAO().findAll();
			request.getSession().setAttribute("listadoClientes", listaClientes);
			response.sendRedirect("./jsp/eliminarCliente.jsp");
			}else{
				String idCliente = request.getParameter("idCliente");
				Cliente cliente = new Cliente();
				cliente.setIdCliente(Integer.parseInt(idCliente));
				Session session = new ClienteDAO().getSession();
				Transaction tx = session.beginTransaction();
				session.delete(cliente);
				tx.commit();
				session.close();
				response.sendRedirect("./jsp/mantenimientoCliente.jsp");
			}
		}

		
		if(opcion!=null && opcion.equals("cliente")){
			String boton = request.getParameter("boton");
			if(boton!=null && boton.equals("Guardar")){
				String nitCliente = request.getParameter("txtnit");
				String nombreCliente = request.getParameter("txtnombre");
				String apellidoCliente = request.getParameter("txtapellidos");
				String direccionCliente = request.getParameter("txtdireccion");

				Cliente cliente = new Cliente(nombreCliente,apellidoCliente,direccionCliente,nitCliente);
				
				Session session = new ClienteDAO().getSession();
				
				Transaction tx = session.beginTransaction();
				session.save(cliente);
				tx.commit();
				session.close();
				response.sendRedirect("./jsp/mantenimientoCliente.jsp");
			}
		}
		
		if(opcion!=null && opcion.equals("consulta")){
		
			List<Cliente> listaClientes = (ArrayList<Cliente>) new ClienteDAO().findAll();
			request.getSession().setAttribute("listaClientes",listaClientes);
			response.sendRedirect("./jsp/consultaCliente.jsp");
		}
	}

}
